লারাভেল (Laravel) একটি শক্তিশালী PHP ফ্রেমওয়ার্ক যা ডেভেলপারদের বিভিন্ন কার্যক্রম সঞ্চালন করার জন্য অনেক টুল সরবরাহ করে। এর মধ্যে একটি গুরুত্বপূর্ণ টুল হলো লারাভেল প্রসেস (Laravel Process), যা ব্যবহারকারীদের সিস্টেমের কমান্ড বা প্রসেস চালানোর সুবিধা দেয়। এটি মূলত সিস্টেম কমান্ড বা স্ক্রিপ্ট চালানোর জন্য ব্যবহৃত হয় এবং ডেভেলপারদের বিভিন্ন ব্যাকগ্রাউন্ড কার্যক্রম পরিচালনা করতে সাহায্য করে।
লারাভেল প্রসেস (Laravel Process) হল একটি ক্লাস যা Symfony Process Component
এর উপর ভিত্তি করে কাজ করে এবং এটি আপনাকে PHP থেকে সরাসরি শেল কমান্ড বা সিস্টেমের অন্যান্য প্রসেস চালাতে সক্ষম করে। এর মাধ্যমে আপনি সহজেই বিভিন্ন শেল স্ক্রিপ্ট, কমান্ড লাইন কমান্ড বা ব্যাশ স্ক্রিপ্ট চালাতে পারেন।
লারাভেল আপনাকে Illuminate\Process\Process
ক্লাস সরবরাহ করে, যার মাধ্যমে আপনি শেল কমান্ড চালাতে পারেন। এটি অত্যন্ত সহজ এবং সরলভাবে ব্যবহার করা যায়।
প্রথমে, আপনাকে লারাভেল প্রসেস ক্লাস ব্যবহার করতে হবে। use
স্টেটমেন্টের মাধ্যমে এটি ইম্পোর্ট করতে হবে:
use Illuminate\Process\Process;
এরপর, একটি কমান্ড বা প্রসেস চালানোর জন্য আপনাকে Process
ক্লাসের একটি ইনস্ট্যান্স তৈরি করতে হবে এবং তারপর run()
মেথড ব্যবহার করতে হবে।
use Illuminate\Process\Process;
$process = new Process(['ls', '-l']); // এখানে 'ls -l' হল শেল কমান্ড
$process->run(); // কমান্ডটি চালানো হবে
if (!$process->isSuccessful()) {
throw new \RuntimeException('প্রসেস চলাকালীন সমস্যা হয়েছে: '.$process->getErrorOutput());
}
echo $process->getOutput(); // প্রসেসের আউটপুট দেখাবে
এখানে, ls -l
একটি শেল কমান্ড যা বর্তমান ডিরেক্টরির সমস্ত ফাইল এবং ফোল্ডারের বিস্তারিত তালিকা দেখায়। run()
মেথডটি কমান্ডটি চালাবে এবং তার আউটপুট দেখাবে।
প্রসেস চালানোর পর এর আউটপুট এবং ত্রুটি (error) হ্যান্ডল করতে getOutput()
এবং getErrorOutput()
মেথড ব্যবহার করা হয়।
$process = new Process(['php', 'artisan', 'migrate']);
$process->run();
if (!$process->isSuccessful()) {
// ত্রুটি থাকলে
echo 'ত্রুটি: ' . $process->getErrorOutput();
} else {
// সফল হলে আউটপুট দেখানো হবে
echo 'আউটপুট: ' . $process->getOutput();
}
এখানে, php artisan migrate
কমান্ডটি চালানো হচ্ছে এবং তার আউটপুট বা ত্রুটি সঠিকভাবে হ্যান্ডল করা হচ্ছে।
আপনি যদি নিশ্চিত হতে চান যে প্রসেসটি সফলভাবে সম্পন্ন হয়েছে, তবে isSuccessful()
মেথড ব্যবহার করতে পারেন:
if ($process->isSuccessful()) {
echo "কমান্ড সফলভাবে সম্পন্ন হয়েছে!";
} else {
echo "কমান্ড চলাকালীন সমস্যা হয়েছে!";
}
এটি প্রসেসের সফলতা বা ব্যর্থতা জানাতে সাহায্য করবে।
আপনি যদি কোনো প্রসেসের জন্য টাইমআউট নির্ধারণ করতে চান, তবে setTimeout()
মেথড ব্যবহার করতে পারেন। উদাহরণস্বরূপ, একটি প্রসেসের জন্য ৫ সেকেন্ডের টাইমআউট সেট করা:
$process = new Process(['php', 'artisan', 'serve']);
$process->setTimeout(5); // টাইমআউট ৫ সেকেন্ড
$process->run();
if (!$process->isSuccessful()) {
echo 'ত্রুটি: ' . $process->getErrorOutput();
}
এখানে, যদি ৫ সেকেন্ডের মধ্যে প্রসেসটি সম্পন্ন না হয়, তবে এটি একটি ত্রুটি দেখাবে।
আপনি যদি চান যে একটি প্রসেস ব্যাকগ্রাউন্ডে চলে, তবে start()
মেথড ব্যবহার করতে পারেন, যা প্রসেসটিকে ব্যাকগ্রাউন্ডে চালু করবে এবং আপনার স্ক্রিপ্টের অন্যান্য অংশগুলো চলতে থাকবে।
$process = new Process(['php', 'artisan', 'queue:work']);
$process->start(); // ব্যাকগ্রাউন্ডে প্রসেস চালাবে
এটি ব্যাকগ্রাউন্ডে প্রসেস চালানোর জন্য ব্যবহৃত হয়, যাতে আপনি অন্য কাজগুলো চালাতে পারেন।
লারাভেল প্রসেস ব্যবহার করার মাধ্যমে আপনি সিস্টেমের কমান্ড বা স্ক্রিপ্ট সহজে চালাতে পারেন, যা অনেক কার্যকলাপ যেমন ব্যাচ প্রসেসিং, ব্যাকগ্রাউন্ড কাজ, এবং অন্য শেল স্ক্রিপ্ট চালানোর জন্য অত্যন্ত কার্যকরী। এটি আপনার অ্যাপ্লিকেশনকে আরও শক্তিশালী এবং নমনীয় করে তোলে।
Read more